// package org.zebra.mybatis.plus.ext.apt;
//
// import com.google.auto.service.AutoService;
// import org.zebra.mybatis.plus.ext.apt.annotation.DomainConstantGen;
//
// import javax.annotation.processing.*;
// import javax.lang.model.SourceVersion;
// import javax.lang.model.element.Element;
// import javax.lang.model.element.ElementKind;
// import javax.lang.model.element.TypeElement;
// import javax.lang.model.util.Elements;
// import javax.lang.model.util.Types;
// import java.util.HashSet;
// import java.util.Set;
//
/// **
// * 生成数据方面的代码
// *
// * @author zhanghongbin
// */
// @AutoService(Processor.class)
// public class AutoBuildProcessor extends AbstractProcessor {
//
//    private Elements elementUtils;
//    private Types typeUtils;
//    private Filer filer;
//    private Messager messager;
//    private DomainConstantBuilder domainConstantBuilder;
//
//    @Override
//    public synchronized void init(ProcessingEnvironment processingEnvironment) {
//        super.init(processingEnvironment);
//        elementUtils = processingEnvironment.getElementUtils();
//        typeUtils = processingEnvironment.getTypeUtils();
//        messager = processingEnvironment.getMessager();
//        filer = processingEnvironment.getFiler();
//        domainConstantBuilder = new DomainConstantBuilder(filer, messager, typeUtils, elementUtils);
//    }
//
//    @Override
//    public boolean process(Set<? extends TypeElement> annotations, RoundEnvironment roundEnv) {
//        for (Element element : roundEnv.getElementsAnnotatedWith(DomainConstantGen.class)) {
//            if (element.getKind() == ElementKind.CLASS) {
//                TypeElement classElement = (TypeElement) element;
//                domainConstantBuilder.buildDefine(classElement);
//            }
//        }
//        return true;
//    }
//
//    @Override
//    public Set<String> getSupportedAnnotationTypes() {
//        Set<String> set = new HashSet<>();
//        set.add(DomainConstantGen.class.getCanonicalName());
//        return set;
//    }
//
//    @Override
//    public SourceVersion getSupportedSourceVersion() {
//        return SourceVersion.latestSupported();
//    }
// }
